package mvc.core;

import java.awt.Image;
import java.beans.PropertyChangeListener;
import java.io.IOException;
import java.util.List;

import mvc.core.impl.MachuImage;
import mvc.effects.IEffect;
import mvc.imageProcessor.impl.ImageProcessor;

public interface IMachuPicchu {

	public void importImages();

	public void exportImages();

	public void removeImage(List<MachuImage> list);

	public List<MachuImage> getImageList();   //done

	void addPropertyChangeListener(PropertyChangeListener l);

	void removePropertyChangeListener(PropertyChangeListener l);

	public String getUniqueRuntimePath();

	public ImageProcessor getImageProcessor();
	
	public List<MachuImage> getSelectedImages();  //done
	
	public void setSelectedImages(List<MachuImage> list);   //done

	public void applyEffect(IEffect effect);
	
	public List<IEffect> getListWithEffects();
	
	public void shutdown();

	public Image getScaledImage(Image img, int i, int t) throws IOException;

}
